﻿using System;
using System.Collections.Generic;
using System.Linq;
using InvestmentIntelligence.DbModel.Models;

namespace InvestmentIntelligence.Data.Repository
{
    public interface ICorporateEventRepository : ISeriesRepository
    {
        /// <summary>
        ///  Get All Corporate Events by securityId
        /// </summary>
        /// <param name="securityId">security id</param>
        /// <returns></returns>
        List<T> GetListBySecurity<T>(Func<IQueryable<CorporateEvent>, IEnumerable<T>> f, int securityId);

        void Merge(IEnumerable<CorporateEvent> toList);

        void BulkInsert(IEnumerable<CorporateEvent> items);

        void Truncate();

        void RemoveBySecurities(List<int> securityIds, DateTime startDate, DateTime endDate);
    }
}
